Porting the Clean Object I/O Library to Haskell
نویسندگان
چکیده
Pure, functional programming languages o er several solutions to construct Graphical User Interfaces (GUIs). In this paper we report on a project in which we port the Clean Object I/O library to Haskell. The Clean Object I/O library uses an explicit environment passing scheme, based on the uniqueness type system of Clean. It supports many standard GUI features such as windows, dialogues, controls, and menus. Applications can have timing behaviour. In addition, there is support for interactive processes and message passing. The standard functional programming language Haskell uses a monadic framework for I/O. We discuss how the Object I/O library can be put in a monadic framework without loosing its essential features. We give an implementation of an essential fragment of the Object I/O library to demonstrate the feasibility. We take especial consideration for the relevant design choices. One particular design choice, how to handle state, results in two versions.
منابع مشابه
The implementation of interactive local statetransition systems in
The functional programming language Clean ooers an extensive library, the object I/O library, to programmers to create interactive applications that use Graphical User Interfaces (GUI). Programs are constructed by composition of interactive objects. Interactive objects share state. To support modular programming it is also possible to provide objects with local state. Hierarchies of stateful ob...
متن کاملFunctional Programs on Clusters?
The implemented Clean-CORBA and Haskell-CORBA interfaces open a way for developing parallel and distributed applications on clusters consisting of components written in functional programming languages, like Clean and Haskell. We focus on a specific application of this tool in this paper. We design and implement an abstract communication layer based on CORBA server objects. Using this layer we ...
متن کاملA Rendezvous of Functions and Reactive Objects | Escaping the Evil I
We present an extension to Haskell which supports reactive, concurrent programming with objects, sans the problematic blocking input. We give a semantics together with a number of programming examples, and show an implementation based on a preprocessor, and a library written in Concurrent Haskell.
متن کاملExperiences with Clean I/O
The Clean system is a powerful functional programming tool. It contains experiments in a number of different areas of functional language design. In particular, it has a novel proposal for the organization of input and output, and contains impressive libraries of facilities for programming graphical user interfaces. Clean I/O is based on collections of operations that act to cause side effects ...
متن کاملSecure Multi-execution in Haskell
Language-based information-flow security has emerged as a promising technology to guarantee confidentiality in on-line systems, where enforcement mechanisms are typically presented as run-time monitors, code transformations, or type-systems. Recently, an alternative technique, called secure multiexecution, has been proposed. The main idea behind this novel approach consists on running a program...
متن کامل